package com.cskaoyan.javase.overload._1basic;

/**
 * 请思考：
 * 如果想在很多方法中，唯一地找到一个方法，需要明确什么？
 * 只需要明确方法的签名就可以了
 * 方法名相同,要关注方法的形参列表,比如数据类型,比如个数等等
 *
 * 实参的自动类型转换在重载中的应用:
 * 由于实参的数据类型在可以自动类型转换到形参数据类型时,都允许传入方法
 * 那么方法一旦存在重载现象,就有可能出现一次方法调用,多个方法匹配的情况
 * 那么这时选择调用哪个方法呢?
 * 这时方法调用遵循"就近原则"
 * 就近原则: 当代码中出现多个内容同时都能够匹配时(比如方法调用,变量的使用等)
 *      那么优先选择"最近的"
 *      如何判断就近呢,就在于"能否找到一个合理的逻辑,解释谁最近"
 *
 * 补充:
 * 要注意,就近原则并不是万能的,在方法重载的方法调用时,是有可能出现就近原则失效的情况
 *      这时方法调用就会失败,代码会报错.
 *
 *
 * @since 16:20
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        // test();
        // test(10L);
        test(10);
        // Ambiguous method call: both 'Demo.test(int, double)' and 'Demo.test(double, int)' match
        // test(1,1);
    }


    public static void test() {
    }

    // public static void test(int a){}
    // public static void test(long a){}
    public static void test(float a) {
    }

    public static void test(double a) {
    }
    public static void test(int a, double b){}
    public static void test(double a, int b){}
}
